1. Technical Field
The present invention generally relates to address transmission for data access operations in data processing systems and in particular to address transmission for related data access and cast out operations. Still more particularly, the present invention relates to a combined address transmission for related data access and cast out operations to improve address bus bandwidth utilization and cache performance.
2. Description of the Related Art
High performance data processing systems typically include a number of levels of caching between the processor(s) and system memory to improve performance, reducing latency in data access operations. When utilized, multiple cache levels are typically employed in progressively larger sizes with a trade off to progressively longer access latencies. Smaller, faster caches are employed at levels within the storage hierarchy closer to the processor or processors, while larger, slower caches are employed at levels closer to system memory. Smaller amounts of data are maintained in upper cache levels, but may be accessed faster.
Within such systems, when data access operations frequently give rise to a need to make space for the subject data. For example, when retrieving data from lower storage levels such as system memory or lower level caches, a cache may need to overwrite other data already within the cache because no further unused space is available for the retrieved data. A replacement policy--typically a least-recently-used (LRU) replacement policy--is employed to decide which cache location(s) should be utilized to store the new data.
Often the cache location (commonly referred to as a "victim") to be overwritten contains only data which is invalid or otherwise unusable from the perspective of a memory coherency model being employed, or for which valid copies are concurrently stored in other devices within the system storage hierarchy. In such cases, the new data may be simply written to the cache location without regard to preserving the existing data at that location.
At other times, however, the cache location selected to received the new data contains modified data, or data which is otherwise unique or special within the storage hierarchy. In such instances, the replacement of data within a selected cache location (a process often referred to as "updating" the cache) requires that any modified data associated with the cache location selected by the replacement policy be written back to lower levels of the storage hierarchy for preservation. The process of writing modified data from a victim to system memory or a lower cache level is generally called a cast out or eviction.
When a cache initiates a data access operation--for instance, in response to a cache miss for a READ operation originating with a processor--typically the cache will initiate a data access operation (READ or WRITE) on a bus coupling the cache to lower storage levels. If the replacement policy requires that a modified cache line be over-written, compelling a cast out for coherency purposes, the cache will also initiate the cast out, but on a subsequent bus cycle. The data access operation thus requires multiple operations, and bus cycles, to complete.
It would be desirable, therefore, to reduce the latency associated with data access operations requiring a victim cast out. It would further be advantageous to improve address bus bandwidth utilization for data access operations requiring a cast out.